// src/pages/internship/report/apis/type.ts

/** 总结任务信息 */
export interface SummaryTask {
  id: number
  studentId: number
  studentName: string
  positionId: number
  positionName: string
  cycleType: "weekly" | "monthly" // 周期类型：weekly-周报，monthly-月报
  cycleName: string // 周期名称，如"第1周"、"第2月"
  startTime: string // 周期开始时间
  endTime: string // 周期结束时间
  deadline: string // 提交截止时间
  remainingDays: number // 剩余天数
  status: "pending" | "submitted" | "approved" | "rejected" // 任务状态
  submittedAt?: string // 提交时间
  submittedFileUrls?: string[] // 已提交的文件URL
}

/** 工作内容项 */
export interface WorkContentItem {
  type: string // 工作类型
  content: string // 工作内容描述
}

/** 问题与解决方法 */
export interface ProblemSolution {
  problem: string // 遇到的问题
  solution: string // 解决方法
}

/** 总结报告提交数据 */
export interface SummaryReport {
  id?: number
  taskId: number
  studentId: number
  studentName?: string // 添加学生姓名属性
  positionName?: string // 添加实习岗位名称属性
  cycleType?: "weekly" | "monthly" // 周期类型：weekly-周报，monthly-月报
  workContents: WorkContentItem[] // 工作内容
  achievements: string // 工作成果
  achievementFiles?: string[] // 成果附件URL
  problems: ProblemSolution[] // 问题与解决方法
  nextPlan: string // 下周/月计划
  remark?: string // 备注
  overdueReason?: string // 逾期提交理由
  status: "pending" | "approved" | "rejected" // 审核状态
  score?: number // 评分(1-5分)
  isOverdue?: boolean // 是否逾期提交
  comment?: string // 审核意见
  suggestion?: string // 附加建议
  submittedAt?: string // 提交时间
  reviewedAt?: string // 审核时间
  reviewerId?: number // 审核老师ID
  reviewerName?: string // 审核老师姓名
}

/** 总结报告查询参数 */
export interface SummaryQuery {
  currentPage: number
  size: number
  cycleType?: "weekly" | "monthly"
  status?: string
  studentName?: string
  major?: string
}

/** 总结报告响应数据 */
export type SummaryResponse = ApiResponseData<{
  list: SummaryReport[]
  total: number
}>

/** 总结任务列表响应数据 */
export type SummaryTaskResponse = ApiResponseData<{
  list: SummaryTask[]
  total: number
}>

/** 创建/更新总结报告请求 */
export interface CreateOrUpdateSummaryRequest extends Partial<SummaryReport> {}

/** 审核总结报告请求 */
export interface ReviewSummaryRequest {
  status: "approved" | "rejected"
  score?: number
  comment: string
  suggestion?: string
}
